package com.duoduo.common.api.myinterface;


import com.duoduo.common.api.spi.extension.SPI;

import java.io.Serializable;

/**序列化接口
 * @author duoduo
 *
 */
@SPI
public interface SerializationOperator {
	
	public <T extends Serializable> byte[] encode(T obj);
	
	/**
	 * @param bytes
	 * @param clazz hessian方式下clazz无用
	 * @return
	 */
	public <T extends Serializable> T decode(byte[] bytes, Class<T> clazz);
	
	/**
	 * @param bytes
	 * @param clazz hessian方式下clazz无用
	 * @param genericsClasses hessian方式下genericsClasses无用
	 * @return
	 */
	public <T extends Serializable> T decode(byte[] bytes, Class<T> clazz, Class<?>... genericsClasses);

}
